With the widespread acceptance of the Internet as a communications and data exchange medium, a wide range of network services have become increasingly available. Network services refer to a class of host-based services that can be accessed across a network, including the Internet, to provide distributed or remote functionality, such as file services, Web applications and so forth. Generally, individual users access network services from a requesting system, often termed a client system, remotely interfaced to a service host system that executes the network service on behalf of the requesting system.
The use of a network service is distinct from the execution of that network service. Service host systems provide network service functionality to requesting client systems. However, each client system must first install the network service to provide the same network service functionality locally. For example, Web logs provide on-line diaries that are centrally hosted and are publicly-accessible by client systems. To run a local Web log on a client system, a user would first have to install the software necessary to run the network service.
Unfortunately, the end-to-end process of network services software installation is also an activity orthogonal to the use of the network service itself. A typical software installation requires the user to successfully complete several sets of independent but related activities. First, the user must know that installation software is required. One difficulty is that the name, type and nature of such software may not be readily apparent based on the network services. As well, suitable installation software might be available in different types and forms.
Second, the user must obtain a copy of the installation software. Generally, new application programs, hardware and peripherals either provide the installation software with distribution media or through on-line download. Obtaining a copy of the installation software for network services, though, can potentially present problems. The goal is to install the software necessary to run a network service locally, which may incorrectly assume that the user knows where to get the necessary software. The installation software could be an application program or might be available through download on-line via a server operating in conjunction with or independently from the service host system. Whatever the source, the user is required to identify, hunt down and obtain a copy of the required installation software.
Third, the user must determine whether any prerequisites necessary to the execution of the network service, plus to run the installation software, are met. The full set of all software installed on a computer system defines a runtime environment against which any new software must first be matched. However, the existing software, including the operating system, can differ from computer system to computer system, including type, version, and patch level, to name just a few distinctions. Each distinction must first be considered prior to installing any new software. As a result, the user can proceed with the installation only after first satisfying any prerequisites, which can include repeating the previous steps of knowing that further installation software is required and getting copies.
Finally, during and possibly following installation, the user may need to check whether the software requires updating. Updating software can be tedious if support is provided separately from the source from which the copy of the software was obtained. In addition, updates might be available in alternative forms relative to the installation software, such as being provided only on-line.
Conventionally, installation software and updates are made available as resources separate from the network service. On-line updates are becoming increasingly available, such as provided through the Windows Update mechanism, provided by Microsoft Corporation, Redmond, Wash., the disclosure of which is incorporated by reference. However, the mechanism requires the user to connect to a Web site, which then evaluates the runtime environment. Based on a list generated by the Web site, the user can select and download updates for supported software from a server for local installation. However, the updating is performed as an orthogonal process separate from the use of the software.
Therefore, there is a need for an approach to facilitating software installation for executing network services locally by closely associating the installation software with the network service itself. Preferably, such an approach would provide both the installation and network service software together.